package cn.cs.util;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import java.sql.*;
import java.util.*;

/***
 * 开发中公共使用的类
 * 
 * */
public class CommonUtil {
	/**
	 * 判断对象的值是不是为空，是空就返回true,不是的话则返回false
	 * **/
	public static boolean isNull(String name){
		boolean flag= false;
		if(null!=name&&!"".equals(name)&&!"null".equals(name)){
			flag=false;
		}else{
			flag=true;
		}
		return flag;
	}
	/**
	 * 判断对象的值是不是不为空，是空就返回false,不是的话则返回true
	 * **/
	public static boolean isNotNull(String name){
		boolean flag= false;
		if(null!=name&&!"".equals(name)&&!"null".equals(name)){
			flag=true;
		}else{
			flag=false;
		}
		return flag;
	}
	/**
	 * 利用set给list去重，最后的排序是无序的
	 * */
    public static void removeDuplicate(ArrayList arlList)   {
	    HashSet h = new HashSet(arlList);   
	    arlList.clear();   
	    arlList.addAll(h);   
    }
    /****
     * 利用set给list去重，最后的排序是和之前的list相同
     * ***/
    public static void removeDuplicateWithOrder(ArrayList arlList)   {      
	    Set set = new HashSet();      
	    List newList = new ArrayList();      
	    for (Iterator iter = arlList.iterator(); iter.hasNext(); ){      
		    Object element = iter.next();      
		    if (set.add(element)) newList.add(element);      
	    }      
	    arlList.clear();      
	    arlList.addAll(newList);      
    }
    //当浏览器访问如下页面时，进行授权处理
    public static ArrayList<String> allListJsp(){
    	ArrayList<String> arlLists = new ArrayList<String>();
    	arlLists.add("/wx/jsp/register/nzhuce.jsp");//会员注册
    	arlLists.add("/wx/jsp/weisc/xzsc.jsp");//选择门店
    	arlLists.add("/wx/jsp/yuyue/myyuyue.jsp");//我的预约
    	arlLists.add("/wx/jsp/yuyue/mynumber.jsp");//我的排号
    	arlLists.add("/wx/jsp/yuyue/yuyue.jsp");//我要保养
    	arlLists.add("/wx/jsp/main.jsp");//选择门店
      	//arlLists.add("/wx/index1.jsp");
    	return arlLists;
    }
    /****
     * 将list的形式转换成json格式的数据
     * */
    public static JSONArray listToJson(List list){
    	JSONArray jsonArray = JSONArray.fromObject(list);
		return jsonArray;
    }
    public static void main(String[] args) {
    	/*Article article = new Article();
		article.setTitle("会员卡绑定");
		article.setDescription("点击此处进行会员绑定");
		article.setUrl("http://www.shangfabao.com/wx/index1.jsp");
		List<Article> articleList = new ArrayList<Article>();
		articleList.add(article);
		listToJson(articleList);*/
    
	}
    
    /**将resultset 的结果转化成json格式的数据 ,并将传递过来的参数key值转成小写字符**/
    public static JSONArray resultSetToJson(ResultSet rs) throws SQLException  {
       // json数组  
       JSONArray array = new JSONArray();  
       // 获取列数  
       ResultSetMetaData metaData = rs.getMetaData();  
       int columnCount = metaData.getColumnCount();  
       // 遍历ResultSet中的每条数据  
        while (rs.next()) {  
            JSONObject jsonObj = new JSONObject();  
            // 遍历每一列  
            for (int i = 1; i <= columnCount; i++) {  
                String columnName =metaData.getColumnLabel(i).toLowerCase();  
                String value = rs.getString(columnName);  
                if(CommonUtil.isNotNull(value)){
                	jsonObj.put(columnName, value);  
                }else{
                	jsonObj.put(columnName, "null");  
                }
            }   
            array.add(jsonObj);   
        }  
       return array;  
    }
    
    public static String[] getStringArray4Json(String jsonString){
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        String[] stringArray = new String[jsonArray.size()];
        for( int i = 0 ; i<jsonArray.size() ; i++ ){
            stringArray = (String[]) jsonArray.get(i);
        }
        return stringArray;
    }
    public static JSONArray getResult(String sql){
    	JSONArray jsonArray =null;
    	try {
			MySRQUtil mySRQUtil = new MySRQUtil();
			Connection conn = mySRQUtil.getConn();
			PreparedStatement ps = conn.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();
			jsonArray= CommonUtil.resultSetToJson(rs);
			// 释放资源
			mySRQUtil.releaseResources(conn, ps, rs);
		} catch (Exception e) {
			// TODO: handle exception
			//e.printStackTrace();
		}
    	return jsonArray;
    }
}
